One common input device used in interfacing with a computing device is the digital switch or button. Digital switches typically include a physical electrical contact designed to present a low electrical resistance when the switch is activated and an open circuit when the switch is not activated. Such switches generally have a binary output (i.e., on or off, high or low). Many types of physical mechanisms, with different behaviors, may be used for digital switches. For example, rocker switches, toggle switches, tactile switches, and sliding switches are all examples of switches that take discrete on or off values. Some digital switches can represent more than two values (e.g., via multiple positions) by connecting some combination of three or more contacts. However, all of these switches have the significant limitation of only being able to take a discrete number of positions and, thus, only being able to represent a limited set of possible user intents.
Analog sensors may also be used in interfacing with a computing device to achieve more granularity along a continuum of user intent. As analog sensors typically measure a physical behavior or phenomenon that can vary continuously under the control of the user, they generally have a continuous range of output values. One example of an analog sensor is a potentiometer (i.e., variable resistor) coupled to a slider or knob that is manipulated by a user. The user may adjust the slider or knob to set the resistance of the potentiometer along a continuum of values, and this resistance may be measured by an appropriate circuit. Prior analog sensors, such as those based on variable resistors, have suffered from poor response time due to the measurement methods used and/or the relaxation time required by the materials utilized. Prior analog sensors have also provided poor tactile, or haptic, response that does not feed back the performance of the sensor to the user or provide reassurance that the input would be what the user expected.
When used in an input device, a sensor must fit into the form factor needed for the particular application. One common form factor used for interfacing with a computing device is the keyswitch (or “key”), which has been used in personal computer keyboards, gaming controllers, control panels of computer-numerically controlled (CNC) industrial equipment (e.g., lathes, saws, milling machines, and the like), and other computing devices. The key typically includes a resilient component (e.g., a metal coil spring, a rubber dome, etc.) that returns a keycap to a home state when a user is not interacting with the key. For many analog sensors, the incorporation of the additional circuitry used to measure the subject physical behavior or phenomenon into the form factor of a standard key is impractical. For instance, in an analog sensor utilizing a potentiometer (as described above), the potentiometer may not fit within the form factor of a standard key.
Gaming controllers used as input devices are often used to control the movement and/or actions of a character in an electronic game (e.g., a computer game). Gaming controllers typically include a number of digital switches or buttons. As described above, the digital buttons of such gaming controllers typically have a binary output that results in a character either moving at a constant speed or not moving at all. While controlling a character using four digital buttons (e.g., up, down, left, and right buttons) may result in a precise direction of movement, the magnitude or speed of movement is fixed. Some gaming controllers also include an analog joystick to allow more granular control of character movement and/or actions. Typically, analog sensors in the gaming controller determine how far the joystick is displaced from a center position along both an x-axis and a y-axis (simultaneously). Thus, in contrast to digital buttons, an analog joystick is able to control character movement in any direction (i.e., 360 degrees) and at different magnitudes (based on how far the joystick is moved from the center position). Unlike digital buttons, however, a user is not able to precisely control the direction of character movement (e.g., at exactly 90 degrees) with an analog joystick.